package com.boot.delayed.rabbitmq.ttl.queue;

import com.boot.delayed.constant.MqConstant;
import com.google.common.collect.Maps;

import org.springframework.amqp.core.Queue;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.util.Map;

@Configuration
public class TtlQueueRabbitMqConfig {

    /**
     * 配置队列
     */
    @Bean
    public Queue ttlQueueQueue() {
        Map<String, Object> args = Maps.newHashMap();
        args.put("x-message-ttl", MqConstant.TTL_QUEUE_TIME); // 配置队列的过期时间 设定了该队列所有消息的存活时间
        //args.put("x-expires",5000); // 如果队头为没有设置超时时间的消息，即使后面消息已经超时也不会被移除队列。
        return new Queue(MqConstant.TTL_QUEUE_QUEUE, true, false, false, args);
    }

}
